import random
import time
from pywinauto.application import Application
from pywinauto import Desktop


def operate_on_nox_windows(texts):
    desktop = Desktop(backend="uia")
    windows = desktop.windows()
    for index, window in enumerate(windows):
        if "新建" in window.window_text():
            # 从给定的文本列表中随机选择一个文本
            random_text = random.choice(texts.split('|'))
            # 将随机选择的文本放入剪贴板
            set_clipboard_text(random_text)
            # 假设要点击的坐标相对窗口左上角为 (x, y)
            x, y = 100, 150
            window.click_input(coords=(x, y))

            # 粘贴文本
            window.type_keys('^v')

            # 延迟 3 秒
            time.sleep(1)

            # 按下回车键
            window.type_keys('{ENTER}')

            # 如果不是最后一个模拟器窗口，添加 10 秒延迟
            if index < len(windows) - 1:
                time.sleep(2)


def set_clipboard_text(text):
    import win32clipboard
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardText(text)
    win32clipboard.CloseClipboard()


def run_periodically(texts):
    while True:
        operate_on_nox_windows(texts)
        # 随机生成 3 到 5 分钟的时间间隔（单位：秒）
        sleep_time = random.randint(2, 5)
        print(f"等待 {sleep_time} 秒后再次执行操作。")
        time.sleep(sleep_time)


if __name__ == "__main__":
    texts = "文本 1|文本 2|文本 3|文本 4"
    run_periodically(texts)
